package cn.tedu.hotel.serve.mapper;

import cn.tedu.hotel.serve.pojo.entity.User;
import cn.tedu.hotel.serve.pojo.vo.AdminUserVO;
import cn.tedu.hotel.serve.pojo.vo.UserLoginInfoVO;
import cn.tedu.hotel.serve.pojo.vo.UserStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserMapper {
    /**
     * 新增用户
     * @param user
     * @return影响行数
     */
    int insert(User user);

    /**
     * 批量新增用户
     * @param users
     * @return影响行数
     */
    int insertBatch(List<User> users);

    /**
     * 根据id删除用户
     * @param id
     * @return影响行数
     */
    int deleteById(Long id);

    /**
     * 批量删除用户
     * @param ids
     * @return影响行数
     */
    int deleteByIds(Long[] ids);

    /**
     * 更新用户数据
     * @param user
     * @return影响行数
     */
    int userUpdate(User user);

    /**
     * 计算数量
     * @return
     */
    int count();

    /**
     * 根据id查找数据
     * @param id id
     * @return
     */
    UserStandardVO getStandardById(Long id);

    /**
     * 用户修改密码
     * @param user
     * @return
     */
    int updateUserPassword(User user);

    UserLoginInfoVO getUserInfoByUsername(String username);

    int countByUsername(String username);

    int countByPhone(String phone);

    List<AdminUserVO> getAdminUserVOList();

    AdminUserVO getAdminUserVOById(Long userId);

    int adminUpdateUser(User user);

    /*AdminDataVO getDataById(Long id);

    List<AdminGroupVO> list();*/
}
